Skip to content

NOISSUE - Add custom Wasm component export invocation support#170

Merged
rodneyosodo merged 21 commits intoabsmach:mainfrom
JeffMboya:feat/custom-component-exports
Mar 30, 2026
Merged

NOISSUE - Add custom Wasm component export invocation support#170
rodneyosodo merged 21 commits intoabsmach:mainfrom
JeffMboya:feat/custom-component-exports

Conversation

@JeffMboya
Copy link
Copy Markdown
Contributor

@JeffMboya JeffMboya commented Mar 24, 2026

What type of PR is this?

Feature

What does this do?

Adds custom Wasm component export invocation support

Which issue(s) does this PR fix/relate to?

Have you included tests for your changes?

No new tests; existing tests updated for new field

Did you document any new/modified features?

Yes

Notes

@JeffMboya JeffMboya force-pushed the feat/custom-component-exports branch from dcaf443 to 8b8155f Compare March 24, 2026 08:39
@JeffMboya JeffMboya closed this Mar 24, 2026
@JeffMboya JeffMboya reopened this Mar 24, 2026
@JeffMboya JeffMboya force-pushed the feat/custom-component-exports branch from 3162623 to 92fbd93 Compare March 24, 2026 10:13
… tests

The new function_name field on StartRequest was missing from 10 test
struct literals, causing cargo test --release to fail with E0063.
Added function_name: None to all affected test fixtures.

Also added three targeted tests for the new field:
- test_start_request_function_name_present: deserialize with field set
- test_start_request_function_name_absent_defaults_to_none: backward
  compat — old payloads without the field still deserialize cleanly
- test_start_request_function_name_roundtrip: ser/deser with WAVE-encoded
  inputs (Vec<String>) and custom function_name round-trips correctly
Extend is_wasm_component to accept 0x0d (wasm-tools >= 0.200 / wit-component
0.241.2) in addition to 0x0a (older wasm-tools). Without this, components
built with modern tooling were misidentified as core modules, causing the
--invoke flag to be called without WAVE-encoded arguments and producing a
parse error at runtime.

Adds four regression tests covering old format, new format, core module
rejection, and too-short binary rejection.
@JeffMboya JeffMboya force-pushed the feat/custom-component-exports branch from 92fbd93 to 38862bd Compare March 24, 2026 10:14
…ntifier

name already served as the function name (validated with 'name is required').
function_name was redundant — the only purpose was as an optional override that
fell back to name anyway. Simplify by using name directly throughout.
Comment thread proplet/src/service.rs Outdated
@rodneyosodo rodneyosodo merged commit 1aa077a into absmach:main Mar 30, 2026
2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants